/*1.5.4*/
(function() {
	var f = 0, l = [], n = {}, j = {}, a = {
		"<" : "lt",
		">" : "gt",
		"&" : "amp",
		'"' : "quot",
		"'" : "#39"
	}, m = /[<>&\"\']/g, b, c = window.setTimeout, d = {}, e;
	function h() {
		this.returnValue = false
	}
	function k() {
		this.cancelBubble = true
	}
	(function(o) {
		var p = o.split(/,/), q, s, r;
		for (q = 0; q < p.length; q += 2) {
			r = p[q + 1].split(/ /);
			for (s = 0; s < r.length; s++) {
				j[r[s]] = p[q]
			}
		}
	})
			("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats-officedocument.wordprocessingml.document,docx,application/vnd.openxmlformats-officedocument.wordprocessingml.template,dotx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,xlsx,application/vnd.openxmlformats-officedocument.presentationml.presentation,pptx,application/vnd.openxmlformats-officedocument.presentationml.template,potx,application/vnd.openxmlformats-officedocument.presentationml.slideshow,ppsx,application/x-javascript,js,application/json,json,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,audio/mp4,m4a,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/photoshop,psd,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/plain,asc txt text diff log,text/html,htm html xhtml,text/css,css,text/csv,csv,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/mp4,mp4,video/x-m4v,m4v,video/x-flv,flv,video/x-ms-wmv,wmv,video/avi,avi,video/webm,webm,video/vnd.rn-realvideo,rv,application/vnd.oasis.opendocument.formula-template,otf,application/octet-stream,exe");
	var g = {
		VERSION : "1.5.4",
		STOPPED : 1,
		STARTED : 2,
		QUEUED : 1,
		UPLOADING : 2,
		FAILED : 4,
		DONE : 5,
		GENERIC_ERROR : -100,
		HTTP_ERROR : -200,
		IO_ERROR : -300,
		SECURITY_ERROR : -400,
		INIT_ERROR : -500,
		FILE_SIZE_ERROR : -600,
		FILE_EXTENSION_ERROR : -601,
		IMAGE_FORMAT_ERROR : -700,
		IMAGE_MEMORY_ERROR : -701,
		IMAGE_DIMENSIONS_ERROR : -702,
		mimeTypes : j,
		ua : (function() {
			var s = navigator, r = s.userAgent, t = s.vendor, p, o, q;
			p = /WebKit/.test(r);
			q = p && t.indexOf("Apple") !== -1;
			o = window.opera && window.opera.buildNumber;
			return {
				windows : navigator.platform.indexOf("Win") !== -1,
				ie : !p && !o && (/MSIE/gi).test(r)
						&& (/Explorer/gi).test(s.appName),
				webkit : p,
				gecko : !p && /Gecko/.test(r),
				safari : q,
				opera : !!o
			}
		}()),
		typeOf : function(p) {
			return ({}).toString.call(p).match(/\s([a-z|A-Z]+)/)[1]
					.toLowerCase()
		},
		extend : function(o) {
			g.each(arguments, function(p, q) {
				if (q > 0) {
					g.each(p, function(s, r) {
						o[r] = s
					})
				}
			});
			return o
		},
		cleanName : function(o) {
			var p, q;
			q = [ /[\300-\306]/g, "A", /[\340-\346]/g, "a", /\307/g, "C",
					/\347/g, "c", /[\310-\313]/g, "E", /[\350-\353]/g, "e",
					/[\314-\317]/g, "I", /[\354-\357]/g, "i", /\321/g, "N",
					/\361/g, "n", /[\322-\330]/g, "O", /[\362-\370]/g, "o",
					/[\331-\334]/g, "U", /[\371-\374]/g, "u" ];
			for (p = 0; p < q.length; p += 2) {
				o = o.replace(q[p], q[p + 1])
			}
			o = o.replace(/\s+/g, "_");
			o = o.replace(/[^a-z0-9_\-\.]+/gi, "");
			return o
		},
		addRuntime : function(o, p) {
			p.name = o;
			l[o] = p;
			l.push(p);
			return p
		},
		guid : function() {
			var o = new Date().getTime().toString(32), p;
			for (p = 0; p < 5; p++) {
				o += Math.floor(Math.random() * 65535).toString(32)
			}
			return (g.guidPrefix || "p") + o + (f++).toString(32)
		},
		buildUrl : function(p, o) {
			var q = "";
			g.each(o, function(s, r) {
				q += (q ? "&" : "") + encodeURIComponent(r) + "="
						+ encodeURIComponent(s)
			});
			if (q) {
				p += (p.indexOf("?") > 0 ? "&" : "?") + q
			}
			return p
		},
		each : function(r, s) {
			var q, p, o;
			if (r) {
				q = r.length;
				if (q === b) {
					for (p in r) {
						if (r.hasOwnProperty(p)) {
							if (s(r[p], p) === false) {
								return
							}
						}
					}
				} else {
					for (o = 0; o < q; o++) {
						if (s(r[o], o) === false) {
							return
						}
					}
				}
			}
		},
		formatSize : function(o) {
			if (o === b || /\D/.test(o)) {
				return g.translate("N/A")
			}
			if (o > 1073741824) {
				return Math.round(o / 1073741824, 1) + " GB"
			}
			if (o > 1048576) {
				return Math.round(o / 1048576, 1) + " MB"
			}
			if (o > 1024) {
				return Math.round(o / 1024, 1) + " KB"
			}
			return o + " b"
		},
		getPos : function(p, t) {
			var u = 0, s = 0, w, v = document, q, r;
			p = p;
			t = t || v.body;
			function o(C) {
				var A, B, z = 0, D = 0;
				if (C) {
					B = C.getBoundingClientRect();
					A = v.compatMode === "CSS1Compat" ? v.documentElement
							: v.body;
					z = B.left + A.scrollLeft;
					D = B.top + A.scrollTop
				}
				return {
					x : z,
					y : D
				}
			}
			if (p
					&& p.getBoundingClientRect
					&& ((navigator.userAgent.indexOf("MSIE") > 0) && (v.documentMode < 8))) {
				q = o(p);
				r = o(t);
				return {
					x : q.x - r.x,
					y : q.y - r.y
				}
			}
			w = p;
			while (w && w != t && w.nodeType) {
				u += w.offsetLeft || 0;
				s += w.offsetTop || 0;
				w = w.offsetParent
			}
			w = p.parentNode;
			while (w && w != t && w.nodeType) {
				u -= w.scrollLeft || 0;
				s -= w.scrollTop || 0;
				w = w.parentNode
			}
			return {
				x : u,
				y : s
			}
		},
		getSize : function(o) {
			return {
				w : o.offsetWidth || o.clientWidth,
				h : o.offsetHeight || o.clientHeight
			}
		},
		parseSize : function(o) {
			var p;
			if (typeof (o) == "string") {
				o = /^([0-9]+)([mgk]?)$/.exec(o.toLowerCase().replace(
						/[^0-9mkg]/g, ""));
				p = o[2];
				o = +o[1];
				if (p == "g") {
					o *= 1073741824
				}
				if (p == "m") {
					o *= 1048576
				}
				if (p == "k") {
					o *= 1024
				}
			}
			return o
		},
		xmlEncode : function(o) {
			return o ? ("" + o).replace(m, function(p) {
				return a[p] ? "&" + a[p] + ";" : p
			}) : o
		},
		toArray : function(q) {
			var p, o = [];
			for (p = 0; p < q.length; p++) {
				o[p] = q[p]
			}
			return o
		},
		inArray : function(q, r) {
			if (r) {
				if (Array.prototype.indexOf) {
					return Array.prototype.indexOf.call(r, q)
				}
				for ( var o = 0, p = r.length; o < p; o++) {
					if (r[o] === q) {
						return o
					}
				}
			}
			return -1
		},
		addI18n : function(o) {
			return g.extend(n, o)
		},
		translate : function(o) {
			return n[o] || o
		},
		isEmptyObj : function(o) {
			if (o === b) {
				return true
			}
			for ( var p in o) {
				return false
			}
			return true
		},
		hasClass : function(q, p) {
			var o;
			if (q.className == "") {
				return false
			}
			o = new RegExp("(^|\\s+)" + p + "(\\s+|$)");
			return o.test(q.className)
		},
		addClass : function(p, o) {
			if (!g.hasClass(p, o)) {
				p.className = p.className == "" ? o : p.className.replace(
						/\s+$/, "")
						+ " " + o
			}
		},
		removeClass : function(q, p) {
			var o = new RegExp("(^|\\s+)" + p + "(\\s+|$)");
			q.className = q.className.replace(o, function(s, r, t) {
				return r === " " && t === " " ? " " : ""
			})
		},
		getStyle : function(p, o) {
			if (p.currentStyle) {
				return p.currentStyle[o]
			} else {
				if (window.getComputedStyle) {
					return window.getComputedStyle(p, null)[o]
				}
			}
		},
		addEvent : function(t, o, u) {
			var s, r, q, p;
			p = arguments[3];
			o = o.toLowerCase();
			if (e === b) {
				e = "Plupload_" + g.guid()
			}
			if (t.addEventListener) {
				s = u;
				t.addEventListener(o, s, false)
			} else {
				if (t.attachEvent) {
					s = function() {
						var v = window.event;
						if (!v.target) {
							v.target = v.srcElement
						}
						v.preventDefault = h;
						v.stopPropagation = k;
						u(v)
					};
					t.attachEvent("on" + o, s)
				}
			}
			if (t[e] === b) {
				t[e] = g.guid()
			}
			if (!d.hasOwnProperty(t[e])) {
				d[t[e]] = {}
			}
			r = d[t[e]];
			if (!r.hasOwnProperty(o)) {
				r[o] = []
			}
			r[o].push({
				func : s,
				orig : u,
				key : p
			})
		},
		removeEvent : function(t, o) {
			var r, u, q;
			if (typeof (arguments[2]) == "function") {
				u = arguments[2]
			} else {
				q = arguments[2]
			}
			o = o.toLowerCase();
			if (t[e] && d[t[e]] && d[t[e]][o]) {
				r = d[t[e]][o]
			} else {
				return
			}
			for ( var p = r.length - 1; p >= 0; p--) {
				if (r[p].key === q || r[p].orig === u) {
					if (t.removeEventListener) {
						t.removeEventListener(o, r[p].func, false)
					} else {
						if (t.detachEvent) {
							t.detachEvent("on" + o, r[p].func)
						}
					}
					r[p].orig = null;
					r[p].func = null;
					r.splice(p, 1);
					if (u !== b) {
						break
					}
				}
			}
			if (!r.length) {
				delete d[t[e]][o]
			}
			if (g.isEmptyObj(d[t[e]])) {
				delete d[t[e]];
				try {
					delete t[e]
				} catch (s) {
					t[e] = b
				}
			}
		},
		removeAllEvents : function(p) {
			var o = arguments[1];
			if (p[e] === b || !p[e]) {
				return
			}
			g.each(d[p[e]], function(r, q) {
				g.removeEvent(p, q, o)
			})
		}
	};
	g.Uploader = function(s) {
		var p = {}, v, u = [], r, q = false;
		v = new g.QueueProgress();
		s = g.extend({
			chunk_size : 0,
			multipart : true,
			multi_selection : true,
			file_data_name : "file",
			filters : []
		}, s);
		function t() {
			var x, y = 0, w;
			if (this.state == g.STARTED) {
				for (w = 0; w < u.length; w++) {
					if (!x && u[w].status == g.QUEUED) {
						x = u[w];
						x.status = g.UPLOADING;
						if (this.trigger("BeforeUpload", x)) {
							this.trigger("UploadFile", x)
						}
					} else {
						y++
					}
				}
				if (y == u.length) {
					this.stop();
					this.trigger("UploadComplete", u)
				}
			}
		}
		function o() {
			var x, w;
			v.reset();
			for (x = 0; x < u.length; x++) {
				w = u[x];
				if (w.size !== b) {
					v.size += w.size;
					v.loaded += w.loaded
				} else {
					v.size = b
				}
				if (w.status == g.DONE) {
					v.uploaded++
				} else {
					if (w.status == g.FAILED) {
						v.failed++
					} else {
						v.queued++
					}
				}
			}
			if (v.size === b) {
				v.percent = u.length > 0 ? Math.ceil(v.uploaded / u.length
						* 100) : 0
			} else {
				v.bytesPerSec = Math.ceil(v.loaded
						/ ((+new Date() - r || 1) / 1000));
				v.percent = v.size > 0 ? Math.ceil(v.loaded / v.size * 100) : 0
			}
		}
		g.extend(this, {
			state : g.STOPPED,
			runtime : "",
			features : {},
			files : u,
			settings : s,
			total : v,
			id : g.guid(),
			init : function() {
				var B = this, C, y, x, A = 0, z;
				if (typeof (s.preinit) == "function") {
					s.preinit(B)
				} else {
					g.each(s.preinit, function(E, D) {
						B.bind(D, E)
					})
				}
				s.page_url = s.page_url
						|| document.location.pathname
								.replace(/\/[^\/]+$/g, "/");
				if (!/^(\w+:\/\/|\/)/.test(s.url)) {
					s.url = s.page_url + s.url
				}
				s.chunk_size = g.parseSize(s.chunk_size);
				s.max_file_size = g.parseSize(s.max_file_size);
				B.bind("FilesAdded", function(D, G) {
					var F, E, I = 0, J, H = s.filters;
					if (H && H.length) {
						J = [];
						g.each(H, function(K) {
							g.each(K.extensions.split(/,/), function(L) {
								if (/^\s*\*\s*$/.test(L)) {
									J.push("\\.*")
								} else {
									J.push("\\."
											+ L.replace(new RegExp("["
													+ ("/^$.*+?|()[]{}\\"
															.replace(/./g,
																	"\\$&"))
													+ "]", "g"), "\\$&"))
								}
							})
						});
						J = new RegExp(J.join("|") + "$", "i")
					}
					for (F = 0; F < G.length; F++) {
						E = G[F];
						E.loaded = 0;
						E.percent = 0;
						E.status = g.QUEUED;
						if (J && !J.test(E.name)) {
							D.trigger("Error", {
								code : g.FILE_EXTENSION_ERROR,
								message : g.translate("File extension error."),
								file : E
							});
							continue
						}
						if (E.size !== b && E.size > s.max_file_size) {
							D.trigger("Error", {
								code : g.FILE_SIZE_ERROR,
								message : g.translate("File size error."),
								file : E
							});
							continue
						}
						u.push(E);
						I++
					}
					if (I) {
						c(function() {
							B.trigger("QueueChanged");
							B.refresh()
						}, 1)
					} else {
						return false
					}
				});
				if (s.unique_names) {
					B.bind("UploadFile", function(D, E) {
						var G = E.name.match(/\.([^.]+)$/), F = "tmp";
						if (G) {
							F = G[1]
						}
						E.target_name = E.id + "." + F
					})
				}
				B.bind("UploadProgress", function(D, E) {
					E.percent = E.size > 0 ? Math.ceil(E.loaded / E.size * 100)
							: 100;
					o()
				});
				B.bind("StateChanged", function(D) {
					if (D.state == g.STARTED) {
						r = (+new Date())
					} else {
						if (D.state == g.STOPPED) {
							for (C = D.files.length - 1; C >= 0; C--) {
								if (D.files[C].status == g.UPLOADING) {
									D.files[C].status = g.QUEUED;
									o()
								}
							}
						}
					}
				});
				B.bind("QueueChanged", o);
				B.bind("Error", function(D, E) {
					if (E.file) {
						E.file.status = g.FAILED;
						o();
						if (D.state == g.STARTED) {
							c(function() {
								t.call(B)
							}, 1)
						}
					}
				});
				B.bind("FileUploaded", function(D, E) {
					E.status = g.DONE;
					E.loaded = E.size;
					D.trigger("UploadProgress", E);
					c(function() {
						t.call(B)
					}, 1)
				});
				if (s.runtimes) {
					y = [];
					z = s.runtimes.split(/\s?,\s?/);
					for (C = 0; C < z.length; C++) {
						if (l[z[C]]) {
							y.push(l[z[C]])
						}
					}
				} else {
					y = l
				}
				function w() {
					var G = y[A++], F, D, E;
					if (G) {
						F = G.getFeatures();
						D = B.settings.required_features;
						if (D) {
							D = D.split(",");
							for (E = 0; E < D.length; E++) {
								if (!F[D[E]]) {
									w();
									return
								}
							}
						}
						G.init(B, function(H) {
							if (H && H.success) {
								B.features = F;
								B.runtime = G.name;
								B.trigger("Init", {
									runtime : G.name
								});
								B.trigger("PostInit");
								B.refresh()
							} else {
								w()
							}
						})
					} else {
						B.trigger("Error", {
							code : g.INIT_ERROR,
							message : g.translate("Init error.")
						})
					}
				}
				w();
				if (typeof (s.init) == "function") {
					s.init(B)
				} else {
					g.each(s.init, function(E, D) {
						B.bind(D, E)
					})
				}
			},
			refresh : function() {
				this.trigger("Refresh")
			},
			start : function() {
				if (u.length && this.state != g.STARTED) {
					this.state = g.STARTED;
					this.trigger("StateChanged");
					t.call(this)
				}
			},
			stop : function() {
				if (this.state != g.STOPPED) {
					this.state = g.STOPPED;
					this.trigger("CancelUpload");
					this.trigger("StateChanged")
				}
			},
			disableBrowse : function() {
				q = arguments[0] !== b ? arguments[0] : true;
				this.trigger("DisableBrowse", q)
			},
			getFile : function(x) {
				var w;
				for (w = u.length - 1; w >= 0; w--) {
					if (u[w].id === x) {
						return u[w]
					}
				}
			},
			removeFile : function(x) {
				var w;
				for (w = u.length - 1; w >= 0; w--) {
					if (u[w].id === x.id) {
						return this.splice(w, 1)[0]
					}
				}
			},
			splice : function(y, w) {
				var x;
				x = u.splice(y === b ? 0 : y, w === b ? u.length : w);
				this.trigger("FilesRemoved", x);
				this.trigger("QueueChanged");
				return x
			},
			trigger : function(x) {
				var z = p[x.toLowerCase()], y, w;
				if (z) {
					w = Array.prototype.slice.call(arguments);
					w[0] = this;
					for (y = 0; y < z.length; y++) {
						if (z[y].func.apply(z[y].scope, w) === false) {
							return false
						}
					}
				}
				return true
			},
			hasEventListener : function(w) {
				return !!p[w.toLowerCase()]
			},
			bind : function(w, y, x) {
				var z;
				w = w.toLowerCase();
				z = p[w] || [];
				z.push({
					func : y,
					scope : x || this
				});
				p[w] = z
			},
			unbind : function(w) {
				w = w.toLowerCase();
				var z = p[w], x, y = arguments[1];
				if (z) {
					if (y !== b) {
						for (x = z.length - 1; x >= 0; x--) {
							if (z[x].func === y) {
								z.splice(x, 1);
								break
							}
						}
					} else {
						z = []
					}
					if (!z.length) {
						delete p[w]
					}
				}
			},
			unbindAll : function() {
				var w = this;
				g.each(p, function(y, x) {
					w.unbind(x)
				})
			},
			destroy : function() {
				this.stop();
				this.trigger("Destroy");
				this.unbindAll()
			}
		})
	};
	g.File = function(r, p, q) {
		var o = this;
		o.id = r;
		o.name = p;
		o.size = q;
		o.loaded = 0;
		o.percent = 0;
		o.status = 0
	};
	g.Runtime = function() {
		this.getFeatures = function() {
		};
		this.init = function(o, p) {
		}
	};
	g.QueueProgress = function() {
		var o = this;
		o.size = 0;
		o.loaded = 0;
		o.uploaded = 0;
		o.failed = 0;
		o.queued = 0;
		o.percent = 0;
		o.bytesPerSec = 0;
		o.reset = function() {
			o.size = o.loaded = o.uploaded = o.failed = o.queued = o.percent = o.bytesPerSec = 0
		}
	};
	g.runtimes = {};
	window.plupload = g
})();
(function() {
	if (window.google && google.gears) {
		return
	}
	var a = null;
	if (typeof GearsFactory != "undefined") {
		a = new GearsFactory()
	} else {
		try {
			a = new ActiveXObject("Gears.Factory");
			if (a.getBuildInfo().indexOf("ie_mobile") != -1) {
				a.privateSetGlobalObject(this)
			}
		} catch (b) {
			if ((typeof navigator.mimeTypes != "undefined")
					&& navigator.mimeTypes["application/x-googlegears"]) {
				a = document.createElement("object");
				a.style.display = "none";
				a.width = 0;
				a.height = 0;
				a.type = "application/x-googlegears";
				document.documentElement.appendChild(a)
			}
		}
	}
	if (!a) {
		return
	}
	if (!window.google) {
		window.google = {}
	}
	if (!google.gears) {
		google.gears = {
			factory : a
		}
	}
})();
(function(e, b, c, d) {
	var f = {};
	function a(h, k, m) {
		var g, j, l, o;
		j = google.gears.factory.create("beta.canvas");
		try {
			j.decode(h);
			if (!k.width) {
				k.width = j.width
			}
			if (!k.height) {
				k.height = j.height
			}
			o = Math.min(width / j.width, height / j.height);
			if (o < 1 || (o === 1 && m === "image/jpeg")) {
				j.resize(Math.round(j.width * o), Math.round(j.height * o));
				if (k.quality) {
					return j.encode(m, {
						quality : k.quality / 100
					})
				}
				return j.encode(m)
			}
		} catch (n) {
		}
		return h
	}
	c.runtimes.Gears = c
			.addRuntime(
					"gears",
					{
						getFeatures : function() {
							return {
								dragdrop : true,
								jpgresize : true,
								pngresize : true,
								chunks : true,
								progress : true,
								multipart : true,
								multi_selection : true
							}
						},
						init : function(l, n) {
							var m, h, g = false;
							if (!e.google || !google.gears) {
								return n({
									success : false
								})
							}
							try {
								m = google.gears.factory.create("beta.desktop")
							} catch (k) {
								return n({
									success : false
								})
							}
							function j(q) {
								var p, o, r = [], s;
								for (o = 0; o < q.length; o++) {
									p = q[o];
									s = c.guid();
									f[s] = p.blob;
									r
											.push(new c.File(s, p.name,
													p.blob.length))
								}
								l.trigger("FilesAdded", r)
							}
							l
									.bind(
											"PostInit",
											function() {
												var p = l.settings, o = b
														.getElementById(p.drop_element);
												if (o) {
													c
															.addEvent(
																	o,
																	"dragover",
																	function(q) {
																		m
																				.setDropEffect(
																						q,
																						"copy");
																		q
																				.preventDefault()
																	}, l.id);
													c
															.addEvent(
																	o,
																	"drop",
																	function(r) {
																		var q = m
																				.getDragData(
																						r,
																						"application/x-gears-files");
																		if (q) {
																			j(q.files)
																		}
																		r
																				.preventDefault()
																	}, l.id);
													o = 0
												}
												c
														.addEvent(
																b
																		.getElementById(p.browse_button),
																"click",
																function(u) {
																	var t = [], r, q, s;
																	u
																			.preventDefault();
																	if (g) {
																		return
																	}
																	no_type_restriction: for (r = 0; r < p.filters.length; r++) {
																		s = p.filters[r].extensions
																				.split(",");
																		for (q = 0; q < s.length; q++) {
																			if (s[q] === "*") {
																				t = [];
																				break no_type_restriction
																			}
																			t
																					.push("."
																							+ s[q])
																		}
																	}
																	m
																			.openFiles(
																					j,
																					{
																						singleFile : !p.multi_selection,
																						filter : t
																					})
																}, l.id)
											});
							l.bind("CancelUpload", function() {
								if (h.abort) {
									h.abort()
								}
							});
							l
									.bind(
											"UploadFile",
											function(u, r) {
												var w = 0, v, s, t = 0, q = u.settings.resize, o;
												if (q
														&& /\.(png|jpg|jpeg)$/i
																.test(r.name)) {
													f[r.id] = a(
															f[r.id],
															q,
															/\.png$/i
																	.test(r.name) ? "image/png"
																	: "image/jpeg")
												}
												r.size = f[r.id].length;
												s = u.settings.chunk_size;
												o = s > 0;
												v = Math.ceil(r.size / s);
												if (!o) {
													s = r.size;
													v = 1
												}
												function p() {
													var C, y = u.settings.multipart, x = 0, B = {
														name : r.target_name
																|| r.name
													}, z = u.settings.url;
													function A(E) {
														var D, J = "----pluploadboundary"
																+ c.guid(), G = "--", I = "\r\n", F, H;
														if (y) {
															h
																	.setRequestHeader(
																			"Content-Type",
																			"multipart/form-data; boundary="
																					+ J);
															D = google.gears.factory
																	.create("beta.blobbuilder");
															c
																	.each(
																			c
																					.extend(
																							B,
																							u.settings.multipart_params),
																			function(
																					L,
																					K) {
																				D
																						.append(G
																								+ J
																								+ I
																								+ 'Content-Disposition: form-data; name="'
																								+ K
																								+ '"'
																								+ I
																								+ I);
																				D
																						.append(L
																								+ I)
																			});
															H = c.mimeTypes[r.name
																	.replace(
																			/^.+\.([^.]+)/,
																			"$1")
																	.toLowerCase()]
																	|| "application/octet-stream";
															D
																	.append(G
																			+ J
																			+ I
																			+ 'Content-Disposition: form-data; name="'
																			+ u.settings.file_data_name
																			+ '"; filename="'
																			+ r.name
																			+ '"'
																			+ I
																			+ "Content-Type: "
																			+ H
																			+ I
																			+ I);
															D.append(E);
															D.append(I + G + J
																	+ G + I);
															F = D.getAsBlob();
															x = F.length
																	- E.length;
															E = F
														}
														h.send(E)
													}
													if (r.status == c.DONE
															|| r.status == c.FAILED
															|| u.state == c.STOPPED) {
														return
													}
													if (o) {
														B.chunk = w;
														B.chunks = v
													}
													C = Math.min(s, r.size
															- (w * s));
													if (!y) {
														z = c.buildUrl(
																u.settings.url,
																B)
													}
													h = google.gears.factory
															.create("beta.httprequest");
													h.open("POST", z);
													if (!y) {
														h
																.setRequestHeader(
																		"Content-Disposition",
																		'attachment; filename="'
																				+ r.name
																				+ '"');
														h
																.setRequestHeader(
																		"Content-Type",
																		"application/octet-stream")
													}
													c
															.each(
																	u.settings.headers,
																	function(E,
																			D) {
																		h
																				.setRequestHeader(
																						D,
																						E)
																	});
													h.upload.onprogress = function(
															D) {
														r.loaded = t + D.loaded
																- x;
														u
																.trigger(
																		"UploadProgress",
																		r)
													};
													h.onreadystatechange = function() {
														var D;
														if (h.readyState == 4
																&& u.state !== c.STOPPED) {
															if (h.status == 200) {
																D = {
																	chunk : w,
																	chunks : v,
																	response : h.responseText,
																	status : h.status
																};
																u
																		.trigger(
																				"ChunkUploaded",
																				r,
																				D);
																if (D.cancelled) {
																	r.status = c.FAILED;
																	return
																}
																t += C;
																if (++w >= v) {
																	r.status = c.DONE;
																	u
																			.trigger(
																					"FileUploaded",
																					r,
																					{
																						response : h.responseText,
																						status : h.status
																					})
																} else {
																	p()
																}
															} else {
																u
																		.trigger(
																				"Error",
																				{
																					code : c.HTTP_ERROR,
																					message : c
																							.translate("HTTP Error."),
																					file : r,
																					chunk : w,
																					chunks : v,
																					status : h.status
																				})
															}
														}
													};
													if (w < v) {
														A(f[r.id].slice(w * s,
																C))
													}
												}
												p()
											});
							l.bind("DisableBrowse", function(o, p) {
								g = p
							});
							l.bind("Destroy", function(o) {
								var p, q, r = {
									browseButton : o.settings.browse_button,
									dropElm : o.settings.drop_element
								};
								for (p in r) {
									q = b.getElementById(r[p]);
									if (q) {
										c.removeAllEvents(q, o.id)
									}
								}
							});
							n({
								success : true
							})
						}
					})
})(window, document, plupload);
(function(g, b, d, e) {
	var a = {}, h = {};
	function c(o) {
		var n, m = typeof o, j, l, k;
		if (o === e || o === null) {
			return "null"
		}
		if (m === "string") {
			n = "\bb\tt\nn\ff\rr\"\"''\\\\";
			return '"'
					+ o.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,
							function(r, q) {
								var p = n.indexOf(q);
								if (p + 1) {
									return "\\" + n.charAt(p + 1)
								}
								r = q.charCodeAt().toString(16);
								return "\\u" + "0000".substring(r.length) + r
							}) + '"'
		}
		if (m == "object") {
			j = o.length !== e;
			n = "";
			if (j) {
				for (l = 0; l < o.length; l++) {
					if (n) {
						n += ","
					}
					n += c(o[l])
				}
				n = "[" + n + "]"
			} else {
				for (k in o) {
					if (o.hasOwnProperty(k)) {
						if (n) {
							n += ","
						}
						n += c(k) + ":" + c(o[k])
					}
				}
				n = "{" + n + "}"
			}
			return n
		}
		return "" + o
	}
	function f(s) {
		var v = false, j = null, o = null, k, l, m, u, n, q = 0;
		try {
			try {
				o = new ActiveXObject("AgControl.AgControl");
				if (o.IsVersionSupported(s)) {
					v = true
				}
				o = null
			} catch (r) {
				var p = navigator.plugins["Silverlight Plug-In"];
				if (p) {
					k = p.description;
					if (k === "1.0.30226.2") {
						k = "2.0.30226.2"
					}
					l = k.split(".");
					while (l.length > 3) {
						l.pop()
					}
					while (l.length < 4) {
						l.push(0)
					}
					m = s.split(".");
					while (m.length > 4) {
						m.pop()
					}
					do {
						u = parseInt(m[q], 10);
						n = parseInt(l[q], 10);
						q++
					} while (q < m.length && u === n);
					if (u <= n && !isNaN(u)) {
						v = true
					}
				}
			}
		} catch (t) {
			v = false
		}
		return v
	}
	d.silverlight = {
		trigger : function(n, k) {
			var m = a[n], l, j;
			if (m) {
				j = d.toArray(arguments).slice(1);
				j[0] = "Silverlight:" + k;
				setTimeout(function() {
					m.trigger.apply(m, j)
				}, 0)
			}
		}
	};
	d.runtimes.Silverlight = d
			.addRuntime(
					"silverlight",
					{
						getFeatures : function() {
							return {
								jpgresize : true,
								pngresize : true,
								chunks : true,
								progress : true,
								multipart : true,
								multi_selection : true
							}
						},
						init : function(p, q) {
							var o, m = "", n = p.settings.filters, l, k = b.body;
							if (!f("2.0.31005.0")
									|| (g.opera && g.opera.buildNumber)) {
								q({
									success : false
								});
								return
							}
							h[p.id] = false;
							a[p.id] = p;
							o = b.createElement("div");
							o.id = p.id + "_silverlight_container";
							d.extend(o.style, {
								position : "absolute",
								top : "0px",
								background : p.settings.shim_bgcolor
										|| "transparent",
								zIndex : 99999,
								width : "100px",
								height : "100px",
								overflow : "hidden",
								opacity : p.settings.shim_bgcolor
										|| b.documentMode > 8 ? "" : 0.01
							});
							o.className = "plupload silverlight";
							if (p.settings.container) {
								k = b.getElementById(p.settings.container);
								if (d.getStyle(k, "position") === "static") {
									k.style.position = "relative"
								}
							}
							k.appendChild(o);
							for (l = 0; l < n.length; l++) {
								m += (m != "" ? "|" : "") + n[l].title
										+ " | *."
										+ n[l].extensions.replace(/,/g, ";*.")
							}
							o.innerHTML = '<object id="'
									+ p.id
									+ '_silverlight" data="data:application/x-silverlight," type="application/x-silverlight-2" style="outline:none;" width="1024" height="1024"><param name="source" value="'
									+ p.settings.silverlight_xap_url
									+ '"/><param name="background" value="Transparent"/><param name="windowless" value="true"/><param name="enablehtmlaccess" value="true"/><param name="initParams" value="id='
									+ p.id + ",filter=" + m + ",multiselect="
									+ p.settings.multi_selection
									+ '"/></object>';
							function j() {
								return b.getElementById(p.id + "_silverlight").content.Upload
							}
							p
									.bind(
											"Silverlight:Init",
											function() {
												var r, s = {};
												if (h[p.id]) {
													return
												}
												h[p.id] = true;
												p
														.bind(
																"Silverlight:StartSelectFiles",
																function(t) {
																	r = []
																});
												p
														.bind(
																"Silverlight:SelectFile",
																function(t, w,
																		u, v) {
																	var x;
																	x = d
																			.guid();
																	s[x] = w;
																	s[w] = x;
																	r
																			.push(new d.File(
																					x,
																					u,
																					v))
																});
												p
														.bind(
																"Silverlight:SelectSuccessful",
																function() {
																	if (r.length) {
																		p
																				.trigger(
																						"FilesAdded",
																						r)
																	}
																});
												p
														.bind(
																"Silverlight:UploadChunkError",
																function(t, w,
																		u, x, v) {
																	p
																			.trigger(
																					"Error",
																					{
																						code : d.IO_ERROR,
																						message : "IO Error.",
																						details : v,
																						file : t
																								.getFile(s[w])
																					})
																});
												p
														.bind(
																"Silverlight:UploadFileProgress",
																function(t, x,
																		u, w) {
																	var v = t
																			.getFile(s[x]);
																	if (v.status != d.FAILED) {
																		v.size = w;
																		v.loaded = u;
																		t
																				.trigger(
																						"UploadProgress",
																						v)
																	}
																});
												p
														.bind(
																"Refresh",
																function(t) {
																	var u, v, w;
																	u = b
																			.getElementById(t.settings.browse_button);
																	if (u) {
																		v = d
																				.getPos(
																						u,
																						b
																								.getElementById(t.settings.container));
																		w = d
																				.getSize(u);
																		d
																				.extend(
																						b
																								.getElementById(t.id
																										+ "_silverlight_container").style,
																						{
																							top : v.y
																									+ "px",
																							left : v.x
																									+ "px",
																							width : w.w
																									+ "px",
																							height : w.h
																									+ "px"
																						})
																	}
																});
												p
														.bind(
																"Silverlight:UploadChunkSuccessful",
																function(t, w,
																		u, z, y) {
																	var x, v = t
																			.getFile(s[w]);
																	x = {
																		chunk : u,
																		chunks : z,
																		response : y
																	};
																	t
																			.trigger(
																					"ChunkUploaded",
																					v,
																					x);
																	if (v.status != d.FAILED
																			&& t.state !== d.STOPPED) {
																		j()
																				.UploadNextChunk()
																	}
																	if (u == z - 1) {
																		v.status = d.DONE;
																		t
																				.trigger(
																						"FileUploaded",
																						v,
																						{
																							response : y
																						})
																	}
																});
												p
														.bind(
																"Silverlight:UploadSuccessful",
																function(t, w,
																		u) {
																	var v = t
																			.getFile(s[w]);
																	v.status = d.DONE;
																	t
																			.trigger(
																					"FileUploaded",
																					v,
																					{
																						response : u
																					})
																});
												p
														.bind(
																"FilesRemoved",
																function(t, v) {
																	var u;
																	for (u = 0; u < v.length; u++) {
																		j()
																				.RemoveFile(
																						s[v[u].id])
																	}
																});
												p
														.bind(
																"UploadFile",
																function(t, v) {
																	var w = t.settings, u = w.resize
																			|| {};
																	j()
																			.UploadFile(
																					s[v.id],
																					t.settings.url,
																					c({
																						name : v.target_name
																								|| v.name,
																						mime : d.mimeTypes[v.name
																								.replace(
																										/^.+\.([^.]+)/,
																										"$1")
																								.toLowerCase()]
																								|| "application/octet-stream",
																						chunk_size : w.chunk_size,
																						image_width : u.width,
																						image_height : u.height,
																						image_quality : u.quality || 90,
																						multipart : !!w.multipart,
																						multipart_params : w.multipart_params
																								|| {},
																						file_data_name : w.file_data_name,
																						headers : w.headers
																					}))
																});
												p.bind("CancelUpload",
														function() {
															j().CancelUpload()
														});
												p
														.bind(
																"Silverlight:MouseEnter",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(p.settings.browse_button);
																	v = t.settings.browse_button_hover;
																	if (u && v) {
																		d
																				.addClass(
																						u,
																						v)
																	}
																});
												p
														.bind(
																"Silverlight:MouseLeave",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(p.settings.browse_button);
																	v = t.settings.browse_button_hover;
																	if (u && v) {
																		d
																				.removeClass(
																						u,
																						v)
																	}
																});
												p
														.bind(
																"Silverlight:MouseLeftButtonDown",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(p.settings.browse_button);
																	v = t.settings.browse_button_active;
																	if (u && v) {
																		d
																				.addClass(
																						u,
																						v);
																		d
																				.addEvent(
																						b.body,
																						"mouseup",
																						function() {
																							d
																									.removeClass(
																											u,
																											v)
																						})
																	}
																});
												p
														.bind(
																"Sliverlight:StartSelectFiles",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(p.settings.browse_button);
																	v = t.settings.browse_button_active;
																	if (u && v) {
																		d
																				.removeClass(
																						u,
																						v)
																	}
																});
												p
														.bind(
																"DisableBrowse",
																function(t, u) {
																	j()
																			.DisableBrowse(
																					u)
																});
												p
														.bind(
																"Destroy",
																function(t) {
																	var u;
																	d
																			.removeAllEvents(
																					b.body,
																					t.id);
																	delete h[t.id];
																	delete a[t.id];
																	u = b
																			.getElementById(t.id
																					+ "_silverlight_container");
																	if (u) {
																		k
																				.removeChild(u)
																	}
																});
												q({
													success : true
												})
											})
						}
					})
})(window, document, plupload);
(function(f, b, d, e) {
	var a = {}, g = {};
	function c() {
		var h;
		try {
			h = navigator.plugins["Shockwave Flash"];
			h = h.description
		} catch (k) {
			try {
				h = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
						.GetVariable("$version")
			} catch (j) {
				h = "0.0"
			}
		}
		h = h.match(/\d+/g);
		return parseFloat(h[0] + "." + h[1])
	}
	d.flash = {
		trigger : function(k, h, j) {
			setTimeout(function() {
				var n = a[k], m, l;
				if (n) {
					n.trigger("Flash:" + h, j)
				}
			}, 0)
		}
	};
	d.runtimes.Flash = d
			.addRuntime(
					"flash",
					{
						getFeatures : function() {
							return {
								jpgresize : true,
								pngresize : true,
								maxWidth : 8091,
								maxHeight : 8091,
								chunks : true,
								progress : true,
								multipart : true,
								multi_selection : true
							}
						},
						init : function(n, p) {
							var l, m, h = 0, j = b.body;
							if (c() < 10) {
								p({
									success : false
								});
								return
							}
							g[n.id] = false;
							a[n.id] = n;
							l = b.getElementById(n.settings.browse_button);
							m = b.createElement("div");
							m.id = n.id + "_flash_container";
							d.extend(m.style, {
								position : "absolute",
								top : "0px",
								background : n.settings.shim_bgcolor
										|| "transparent",
								zIndex : 99999,
								width : "100%",
								height : "100%"
							});
							m.className = "plupload flash";
							if (n.settings.container) {
								j = b.getElementById(n.settings.container);
								if (d.getStyle(j, "position") === "static") {
									j.style.position = "relative"
								}
							}
							j.appendChild(m);
							(function() {
								var q, r;
								q = '<object id="'
										+ n.id
										+ '_flash" type="application/x-shockwave-flash" data="'
										+ n.settings.flash_swf_url + '" ';
								if (d.ua.ie) {
									q += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '
								}
								q += 'width="100%" height="100%" style="outline:0"><param name="movie" value="'
										+ n.settings.flash_swf_url
										+ '" /><param name="flashvars" value="id='
										+ escape(n.id)
										+ '" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';
								if (d.ua.ie) {
									r = b.createElement("div");
									m.appendChild(r);
									r.outerHTML = q;
									r = null
								} else {
									m.innerHTML = q
								}
							}());
							function o() {
								return b.getElementById(n.id + "_flash")
							}
							function k() {
								if (h++ > 5000) {
									p({
										success : false
									});
									return
								}
								if (g[n.id] === false) {
									setTimeout(k, 1)
								}
							}
							k();
							l = m = null;
							n.bind("Destroy",
									function(q) {
										var r;
										d.removeAllEvents(b.body, q.id);
										delete g[q.id];
										delete a[q.id];
										r = b.getElementById(q.id
												+ "_flash_container");
										if (r) {
											j.removeChild(r)
										}
									});
							n
									.bind(
											"Flash:Init",
											function() {
												var s = {}, r;
												try {
													o()
															.setFileFilters(
																	n.settings.filters,
																	n.settings.multi_selection)
												} catch (q) {
													p({
														success : false
													});
													return
												}
												if (g[n.id]) {
													return
												}
												g[n.id] = true;
												n
														.bind(
																"UploadFile",
																function(t, v) {
																	var w = t.settings, u = n.settings.resize
																			|| {};
																	o()
																			.uploadFile(
																					s[v.id],
																					w.url,
																					{
																						name : v.target_name
																								|| v.name,
																						mime : d.mimeTypes[v.name
																								.replace(
																										/^.+\.([^.]+)/,
																										"$1")
																								.toLowerCase()]
																								|| "application/octet-stream",
																						chunk_size : w.chunk_size,
																						width : u.width,
																						height : u.height,
																						quality : u.quality,
																						multipart : w.multipart,
																						multipart_params : w.multipart_params
																								|| {},
																						file_data_name : w.file_data_name,
																						format : /\.(jpg|jpeg)$/i
																								.test(v.name) ? "jpg"
																								: "png",
																						headers : w.headers,
																						urlstream_upload : w.urlstream_upload
																					})
																});
												n.bind("CancelUpload",
														function() {
															o().cancelUpload()
														});
												n
														.bind(
																"Flash:UploadProcess",
																function(u, t) {
																	var v = u
																			.getFile(s[t.id]);
																	if (v.status != d.FAILED) {
																		v.loaded = t.loaded;
																		v.size = t.size;
																		u
																				.trigger(
																						"UploadProgress",
																						v)
																	}
																});
												n
														.bind(
																"Flash:UploadChunkComplete",
																function(t, v) {
																	var w, u = t
																			.getFile(s[v.id]);
																	w = {
																		chunk : v.chunk,
																		chunks : v.chunks,
																		response : v.text
																	};
																	t
																			.trigger(
																					"ChunkUploaded",
																					u,
																					w);
																	if (u.status !== d.FAILED
																			&& t.state !== d.STOPPED) {
																		o()
																				.uploadNextChunk()
																	}
																	if (v.chunk == v.chunks - 1) {
																		u.status = d.DONE;
																		t
																				.trigger(
																						"FileUploaded",
																						u,
																						{
																							response : v.text
																						})
																	}
																});
												n
														.bind(
																"Flash:SelectFiles",
																function(t, w) {
																	var v, u, x = [], y;
																	for (u = 0; u < w.length; u++) {
																		v = w[u];
																		y = d
																				.guid();
																		s[y] = v.id;
																		s[v.id] = y;
																		x
																				.push(new d.File(
																						y,
																						v.name,
																						v.size))
																	}
																	if (x.length) {
																		n
																				.trigger(
																						"FilesAdded",
																						x)
																	}
																});
												n
														.bind(
																"Flash:SecurityError",
																function(t, u) {
																	n
																			.trigger(
																					"Error",
																					{
																						code : d.SECURITY_ERROR,
																						message : d
																								.translate("Security error."),
																						details : u.message,
																						file : n
																								.getFile(s[u.id])
																					})
																});
												n
														.bind(
																"Flash:GenericError",
																function(t, u) {
																	n
																			.trigger(
																					"Error",
																					{
																						code : d.GENERIC_ERROR,
																						message : d
																								.translate("Generic error."),
																						details : u.message,
																						file : n
																								.getFile(s[u.id])
																					})
																});
												n
														.bind(
																"Flash:IOError",
																function(t, u) {
																	n
																			.trigger(
																					"Error",
																					{
																						code : d.IO_ERROR,
																						message : d
																								.translate("IO error."),
																						details : u.message,
																						file : n
																								.getFile(s[u.id])
																					})
																});
												n
														.bind(
																"Flash:ImageError",
																function(t, u) {
																	n
																			.trigger(
																					"Error",
																					{
																						code : parseInt(
																								u.code,
																								10),
																						message : d
																								.translate("Image error."),
																						file : n
																								.getFile(s[u.id])
																					})
																});
												n
														.bind(
																"Flash:StageEvent:rollOver",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(n.settings.browse_button);
																	v = t.settings.browse_button_hover;
																	if (u && v) {
																		d
																				.addClass(
																						u,
																						v)
																	}
																});
												n
														.bind(
																"Flash:StageEvent:rollOut",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(n.settings.browse_button);
																	v = t.settings.browse_button_hover;
																	if (u && v) {
																		d
																				.removeClass(
																						u,
																						v)
																	}
																});
												n
														.bind(
																"Flash:StageEvent:mouseDown",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(n.settings.browse_button);
																	v = t.settings.browse_button_active;
																	if (u && v) {
																		d
																				.addClass(
																						u,
																						v);
																		d
																				.addEvent(
																						b.body,
																						"mouseup",
																						function() {
																							d
																									.removeClass(
																											u,
																											v)
																						},
																						t.id)
																	}
																});
												n
														.bind(
																"Flash:StageEvent:mouseUp",
																function(t) {
																	var u, v;
																	u = b
																			.getElementById(n.settings.browse_button);
																	v = t.settings.browse_button_active;
																	if (u && v) {
																		d
																				.removeClass(
																						u,
																						v)
																	}
																});
												n
														.bind(
																"Flash:ExifData",
																function(t, u) {
																	n
																			.trigger(
																					"ExifData",
																					n
																							.getFile(s[u.id]),
																					u.data)
																});
												n
														.bind(
																"Flash:GpsData",
																function(t, u) {
																	n
																			.trigger(
																					"GpsData",
																					n
																							.getFile(s[u.id]),
																					u.data)
																});
												n.bind("QueueChanged",
														function(t) {
															n.refresh()
														});
												n
														.bind(
																"FilesRemoved",
																function(t, v) {
																	var u;
																	for (u = 0; u < v.length; u++) {
																		o()
																				.removeFile(
																						s[v[u].id])
																	}
																});
												n.bind("StateChanged",
														function(t) {
															n.refresh()
														});
												n
														.bind(
																"Refresh",
																function(t) {
																	var u, v, w;
																	o()
																			.setFileFilters(
																					n.settings.filters,
																					n.settings.multi_selection);
																	u = b
																			.getElementById(t.settings.browse_button);
																	if (u) {
																		v = d
																				.getPos(
																						u,
																						b
																								.getElementById(t.settings.container));
																		w = d
																				.getSize(u);
																		d
																				.extend(
																						b
																								.getElementById(t.id
																										+ "_flash_container").style,
																						{
																							top : v.y
																									+ "px",
																							left : v.x
																									+ "px",
																							width : w.w
																									+ "px",
																							height : w.h
																									+ "px"
																						})
																	}
																});
												n
														.bind(
																"DisableBrowse",
																function(t, u) {
																	o()
																			.disableBrowse(
																					u)
																});
												p({
													success : true
												})
											})
						}
					})
})(window, document, plupload);
(function(a) {
	a.runtimes.BrowserPlus = a
			.addRuntime(
					"browserplus",
					{
						getFeatures : function() {
							return {
								dragdrop : true,
								jpgresize : true,
								pngresize : true,
								chunks : true,
								progress : true,
								multipart : true,
								multi_selection : true
							}
						},
						init : function(g, j) {
							var e = window.BrowserPlus, h = {}, d = g.settings, c = d.resize;
							function f(o) {
								var n, m, k = [], l, p;
								for (m = 0; m < o.length; m++) {
									l = o[m];
									p = a.guid();
									h[p] = l;
									k.push(new a.File(p, l.name, l.size))
								}
								if (m) {
									g.trigger("FilesAdded", k)
								}
							}
							function b() {
								var k = false;
								g
										.bind(
												"PostInit",
												function() {
													var o, m = d.drop_element, q = g.id
															+ "_droptarget", l = document
															.getElementById(m), n;
													function r(t, s) {
														e.DragAndDrop
																.AddDropTarget(
																		{
																			id : t
																		},
																		function(
																				u) {
																			e.DragAndDrop
																					.AttachCallbacks(
																							{
																								id : t,
																								hover : function(
																										v) {
																									if (!v
																											&& s) {
																										s()
																									}
																								},
																								drop : function(
																										v) {
																									if (s) {
																										s()
																									}
																									f(v)
																								}
																							},
																							function() {
																							})
																		})
													}
													function p() {
														document
																.getElementById(q).style.top = "-1000px"
													}
													if (l) {
														if (document.attachEvent
																&& (/MSIE/gi)
																		.test(navigator.userAgent)) {
															o = document
																	.createElement("div");
															o.setAttribute(
																	"id", q);
															a
																	.extend(
																			o.style,
																			{
																				position : "absolute",
																				top : "-1000px",
																				background : "red",
																				filter : "alpha(opacity=0)",
																				opacity : 0
																			});
															document.body
																	.appendChild(o);
															a
																	.addEvent(
																			l,
																			"dragenter",
																			function(
																					t) {
																				var s, u;
																				s = document
																						.getElementById(m);
																				u = a
																						.getPos(s);
																				a
																						.extend(
																								document
																										.getElementById(q).style,
																								{
																									top : u.y
																											+ "px",
																									left : u.x
																											+ "px",
																									width : s.offsetWidth
																											+ "px",
																									height : s.offsetHeight
																											+ "px"
																								})
																			});
															r(q, p)
														} else {
															r(m)
														}
													}
													a
															.addEvent(
																	document
																			.getElementById(d.browse_button),
																	"click",
																	function(y) {
																		var s = [], u, t, x = d.filters, w, v;
																		y
																				.preventDefault();
																		if (k) {
																			return
																		}
																		no_type_restriction: for (u = 0; u < x.length; u++) {
																			w = x[u].extensions
																					.split(",");
																			for (t = 0; t < w.length; t++) {
																				if (w[t] === "*") {
																					s = [];
																					break no_type_restriction
																				}
																				v = a.mimeTypes[w[t]];
																				if (v
																						&& a
																								.inArray(
																										v,
																										s) === -1) {
																					s
																							.push(a.mimeTypes[w[t]])
																				}
																			}
																		}
																		e.FileBrowse
																				.OpenBrowseDialog(
																						{
																							mimeTypes : s
																						},
																						function(
																								z) {
																							if (z.success) {
																								f(z.value)
																							}
																						})
																	});
													l = o = null
												});
								g.bind("CancelUpload", function() {
									e.Uploader.cancel({}, function() {
									})
								});
								g.bind("DisableBrowse", function(l, m) {
									k = m
								});
								g
										.bind(
												"UploadFile",
												function(o, l) {
													var n = h[l.id], t = {}, m = o.settings.chunk_size, p, q = [];
													function s(u, w) {
														var v;
														if (l.status == a.FAILED) {
															return
														}
														t.name = l.target_name
																|| l.name;
														if (m) {
															t.chunk = "" + u;
															t.chunks = "" + w
														}
														v = q.shift();
														e.Uploader
																.upload(
																		{
																			url : o.settings.url,
																			files : {
																				file : v
																			},
																			cookies : document.cookies,
																			postvars : a
																					.extend(
																							t,
																							o.settings.multipart_params),
																			progressCallback : function(
																					z) {
																				var y, x = 0;
																				p[u] = parseInt(
																						z.filePercent
																								* v.size
																								/ 100,
																						10);
																				for (y = 0; y < p.length; y++) {
																					x += p[y]
																				}
																				l.loaded = x;
																				o
																						.trigger(
																								"UploadProgress",
																								l)
																			}
																		},
																		function(
																				y) {
																			var x, z;
																			if (y.success) {
																				x = y.value.statusCode;
																				if (m) {
																					o
																							.trigger(
																									"ChunkUploaded",
																									l,
																									{
																										chunk : u,
																										chunks : w,
																										response : y.value.body,
																										status : x
																									})
																				}
																				if (q.length > 0) {
																					s(
																							++u,
																							w)
																				} else {
																					l.status = a.DONE;
																					o
																							.trigger(
																									"FileUploaded",
																									l,
																									{
																										response : y.value.body,
																										status : x
																									});
																					if (x >= 400) {
																						o
																								.trigger(
																										"Error",
																										{
																											code : a.HTTP_ERROR,
																											message : a
																													.translate("HTTP Error."),
																											file : l,
																											status : x
																										})
																					}
																				}
																			} else {
																				o
																						.trigger(
																								"Error",
																								{
																									code : a.GENERIC_ERROR,
																									message : a
																											.translate("Generic Error."),
																									file : l,
																									details : y.error
																								})
																			}
																		})
													}
													function r(u) {
														l.size = u.size;
														if (m) {
															e.FileAccess
																	.chunk(
																			{
																				file : u,
																				chunkSize : m
																			},
																			function(
																					x) {
																				if (x.success) {
																					var y = x.value, v = y.length;
																					p = Array(v);
																					for ( var w = 0; w < v; w++) {
																						p[w] = 0;
																						q
																								.push(y[w])
																					}
																					s(
																							0,
																							v)
																				}
																			})
														} else {
															p = Array(1);
															q.push(u);
															s(0, 1)
														}
													}
													if (c
															&& /\.(png|jpg|jpeg)$/i
																	.test(l.name)) {
														BrowserPlus.ImageAlter
																.transform(
																		{
																			file : n,
																			quality : c.quality || 90,
																			actions : [ {
																				scale : {
																					maxwidth : c.width,
																					maxheight : c.height
																				}
																			} ]
																		},
																		function(
																				u) {
																			if (u.success) {
																				r(u.value.file)
																			}
																		})
													} else {
														r(n)
													}
												});
								j({
									success : true
								})
							}
							if (e) {
								e.init(function(l) {
									var k = [ {
										service : "Uploader",
										version : "3"
									}, {
										service : "DragAndDrop",
										version : "1"
									}, {
										service : "FileBrowse",
										version : "1"
									}, {
										service : "FileAccess",
										version : "2"
									} ];
									if (c) {
										k.push({
											service : "ImageAlter",
											version : "4"
										})
									}
									if (l.success) {
										e.require({
											services : k
										}, function(m) {
											if (m.success) {
												b()
											} else {
												j()
											}
										})
									} else {
										j()
									}
								})
							} else {
								j()
							}
						}
					})
})(plupload);
(function(h, k, j, e) {
	var c = {}, g;
	function m(o, p) {
		var n;
		if ("FileReader" in h) {
			n = new FileReader();
			n.readAsDataURL(o);
			n.onload = function() {
				p(n.result)
			}
		} else {
			return p(o.getAsDataURL())
		}
	}
	function l(o, p) {
		var n;
		if ("FileReader" in h) {
			n = new FileReader();
			n.readAsBinaryString(o);
			n.onload = function() {
				p(n.result)
			}
		} else {
			return p(o.getAsBinary())
		}
	}
	function d(r, p, n, v) {
		var q, o, u, s, t = this;
		m(c[r.id], function(w) {
			q = k.createElement("canvas");
			q.style.display = "none";
			k.body.appendChild(q);
			o = q.getContext("2d");
			u = new Image();
			u.onerror = u.onabort = function() {
				v({
					success : false
				})
			};
			u.onload = function() {
				var B, x, z, y, A;
				if (!p.width) {
					p.width = u.width
				}
				if (!p.height) {
					p.height = u.height
				}
				s = Math.min(p.width / u.width, p.height / u.height);
				if (s < 1 || (s === 1 && n === "image/jpeg")) {
					B = Math.round(u.width * s);
					x = Math.round(u.height * s);
					q.width = B;
					q.height = x;
					o.drawImage(u, 0, 0, B, x);
					if (n === "image/jpeg") {
						y = new f(atob(w.substring(w.indexOf("base64,") + 7)));
						if (y.headers && y.headers.length) {
							A = new a();
							if (A.init(y.get("exif")[0])) {
								A.setExif("PixelXDimension", B);
								A.setExif("PixelYDimension", x);
								y.set("exif", A.getBinary());
								if (t.hasEventListener("ExifData")) {
									t.trigger("ExifData", r, A.EXIF())
								}
								if (t.hasEventListener("GpsData")) {
									t.trigger("GpsData", r, A.GPS())
								}
							}
						}
						if (p.quality) {
							try {
								w = q.toDataURL(n, p.quality / 100)
							} catch (C) {
								w = q.toDataURL(n)
							}
						}
					} else {
						w = q.toDataURL(n)
					}
					w = w.substring(w.indexOf("base64,") + 7);
					w = atob(w);
					if (y && y.headers && y.headers.length) {
						w = y.restore(w);
						y.purge()
					}
					q.parentNode.removeChild(q);
					v({
						success : true,
						data : w
					})
				} else {
					v({
						success : false
					})
				}
			};
			u.src = w
		})
	}
	j.runtimes.Html5 = j
			.addRuntime(
					"html5",
					{
						getFeatures : function() {
							var s, o, r, q, p, n;
							o = r = p = n = false;
							if (h.XMLHttpRequest) {
								s = new XMLHttpRequest();
								r = !!s.upload;
								o = !!(s.sendAsBinary || s.upload)
							}
							if (o) {
								q = !!(s.sendAsBinary || (h.Uint8Array && h.ArrayBuffer));
								p = !!(File
										&& (File.prototype.getAsDataURL || h.FileReader) && q);
								n = !!(File && (File.prototype.mozSlice
										|| File.prototype.webkitSlice || File.prototype.slice))
							}
							g = j.ua.safari && j.ua.windows;
							return {
								html5 : o,
								dragdrop : (function() {
									var t = k.createElement("div");
									return ("draggable" in t)
											|| ("ondragstart" in t && "ondrop" in t)
								}()),
								jpgresize : p,
								pngresize : p,
								multipart : p || !!h.FileReader || !!h.FormData,
								canSendBinary : q,
								cantSendBlobInFormData : !!(j.ua.gecko
										&& h.FormData && h.FileReader && !FileReader.prototype.readAsArrayBuffer),
								progress : r,
								chunks : n,
								multi_selection : !(j.ua.safari && j.ua.windows),
								triggerDialog : (j.ua.gecko && h.FormData || j.ua.webkit)
							}
						},
						init : function(p, r) {
							var n, q;
							function o(w) {
								var u, t, v = [], x, s = {};
								for (t = 0; t < w.length; t++) {
									u = w[t];
									if (s[u.name]) {
										continue
									}
									s[u.name] = true;
									x = j.guid();
									c[x] = u;
									v.push(new j.File(x, u.fileName || u.name,
											u.fileSize || u.size))
								}
								if (v.length) {
									p.trigger("FilesAdded", v)
								}
							}
							n = this.getFeatures();
							if (!n.html5) {
								r({
									success : false
								});
								return
							}
							p
									.bind(
											"Init",
											function(w) {
												var G, F, C = [], v, D, t = w.settings.filters, u, B, s = k.body, E;
												G = k.createElement("div");
												G.id = w.id
														+ "_html5_container";
												j
														.extend(
																G.style,
																{
																	position : "absolute",
																	background : p.settings.shim_bgcolor
																			|| "transparent",
																	width : "100px",
																	height : "100px",
																	overflow : "hidden",
																	zIndex : 99999,
																	opacity : p.settings.shim_bgcolor ? ""
																			: 0
																});
												G.className = "plupload html5";
												if (p.settings.container) {
													s = k
															.getElementById(p.settings.container);
													if (j.getStyle(s,
															"position") === "static") {
														s.style.position = "relative"
													}
												}
												s.appendChild(G);
												no_type_restriction: for (v = 0; v < t.length; v++) {
													u = t[v].extensions
															.split(/,/);
													for (D = 0; D < u.length; D++) {
														if (u[D] === "*") {
															C = [];
															break no_type_restriction
														}
														B = j.mimeTypes[u[D]];
														if (B
																&& j.inArray(B,
																		C) === -1) {
															C.push(B)
														}
													}
												}
												G.innerHTML = '<input id="'
														+ p.id
														+ '_html5"  style="font-size:999px" type="file" accept="'
														+ C.join(",")
														+ '" '
														+ (p.settings.multi_selection
																&& p.features.multi_selection ? 'multiple="multiple"'
																: "") + " />";
												G.scrollTop = 100;
												E = k.getElementById(p.id
														+ "_html5");
												if (w.features.triggerDialog) {
													j.extend(E.style, {
														position : "absolute",
														width : "100%",
														height : "100%"
													})
												} else {
													j.extend(E.style, {
														cssFloat : "right",
														styleFloat : "right"
													})
												}
												E.onchange = function() {
													o(this.files);
													this.value = ""
												};
												F = k
														.getElementById(w.settings.browse_button);
												if (F) {
													var z = w.settings.browse_button_hover, A = w.settings.browse_button_active, x = w.features.triggerDialog ? F
															: G;
													if (z) {
														j.addEvent(x,
																"mouseover",
																function() {
																	j.addClass(
																			F,
																			z)
																}, w.id);
														j
																.addEvent(
																		x,
																		"mouseout",
																		function() {
																			j
																					.removeClass(
																							F,
																							z)
																		}, w.id)
													}
													if (A) {
														j.addEvent(x,
																"mousedown",
																function() {
																	j.addClass(
																			F,
																			A)
																}, w.id);
														j
																.addEvent(
																		k.body,
																		"mouseup",
																		function() {
																			j
																					.removeClass(
																							F,
																							A)
																		}, w.id)
													}
													if (w.features.triggerDialog) {
														j
																.addEvent(
																		F,
																		"click",
																		function(
																				H) {
																			var y = k
																					.getElementById(w.id
																							+ "_html5");
																			if (y
																					&& !y.disabled) {
																				y
																						.click()
																			}
																			H
																					.preventDefault()
																		}, w.id)
													}
												}
											});
							p
									.bind(
											"PostInit",
											function() {
												var s = k
														.getElementById(p.settings.drop_element);
												if (s) {
													if (g) {
														j
																.addEvent(
																		s,
																		"dragenter",
																		function(
																				w) {
																			var v, t, u;
																			v = k
																					.getElementById(p.id
																							+ "_drop");
																			if (!v) {
																				v = k
																						.createElement("input");
																				v
																						.setAttribute(
																								"type",
																								"file");
																				v
																						.setAttribute(
																								"id",
																								p.id
																										+ "_drop");
																				v
																						.setAttribute(
																								"multiple",
																								"multiple");
																				j
																						.addEvent(
																								v,
																								"change",
																								function() {
																									o(this.files);
																									j
																											.removeEvent(
																													v,
																													"change",
																													p.id);
																									v.parentNode
																											.removeChild(v)
																								},
																								p.id);
																				s
																						.appendChild(v)
																			}
																			t = j
																					.getPos(
																							s,
																							k
																									.getElementById(p.settings.container));
																			u = j
																					.getSize(s);
																			if (j
																					.getStyle(
																							s,
																							"position") === "static") {
																				j
																						.extend(
																								s.style,
																								{
																									position : "relative"
																								})
																			}
																			j
																					.extend(
																							v.style,
																							{
																								position : "absolute",
																								display : "block",
																								top : 0,
																								left : 0,
																								width : u.w
																										+ "px",
																								height : u.h
																										+ "px",
																								opacity : 0
																							})
																		}, p.id);
														return
													}
													j
															.addEvent(
																	s,
																	"dragover",
																	function(t) {
																		t
																				.preventDefault()
																	}, p.id);
													j
															.addEvent(
																	s,
																	"drop",
																	function(u) {
																		var t = u.dataTransfer;
																		if (t
																				&& t.files) {
																			o(t.files)
																		}
																		u
																				.preventDefault()
																	}, p.id)
												}
											});
							p
									.bind(
											"Refresh",
											function(s) {
												var t, u, v, x, w;
												t = k
														.getElementById(p.settings.browse_button);
												if (t) {
													u = j
															.getPos(
																	t,
																	k
																			.getElementById(s.settings.container));
													v = j.getSize(t);
													x = k
															.getElementById(p.id
																	+ "_html5_container");
													j.extend(x.style, {
														top : u.y + "px",
														left : u.x + "px",
														width : v.w + "px",
														height : v.h + "px"
													});
													if (p.features.triggerDialog) {
														if (j.getStyle(t,
																"position") === "static") {
															j
																	.extend(
																			t.style,
																			{
																				position : "relative"
																			})
														}
														w = parseInt(
																j
																		.getStyle(
																				t,
																				"z-index"),
																10);
														if (isNaN(w)) {
															w = 0
														}
														j.extend(t.style, {
															zIndex : w
														});
														j.extend(x.style, {
															zIndex : w - 1
														})
													}
												}
											});
							p.bind("DisableBrowse", function(s, u) {
								var t = k.getElementById(s.id + "_html5");
								if (t) {
									t.disabled = u
								}
							});
							p.bind("CancelUpload", function() {
								if (q && q.abort) {
									q.abort()
								}
							});
							p
									.bind(
											"UploadFile",
											function(s, u) {
												var v = s.settings, y, t;
												function x(A, D, z) {
													var B;
													if (File.prototype.slice) {
														try {
															A.slice();
															return A
																	.slice(D, z)
														} catch (C) {
															return A.slice(D, z
																	- D)
														}
													} else {
														if (B = File.prototype.webkitSlice
																|| File.prototype.mozSlice) {
															return B.call(A, D,
																	z)
														} else {
															return null
														}
													}
												}
												function w(A) {
													var D = 0, C = 0, z = ("FileReader" in h) ? new FileReader
															: null;
													function B() {
														var I, M, K, L, H, J, F, E = s.settings.url;
														function G(V) {
															var T = 0, N = "----pluploadboundary"
																	+ j.guid(), O, P = "--", U = "\r\n", R = "";
															q = new XMLHttpRequest;
															if (q.upload) {
																q.upload.onprogress = function(
																		W) {
																	u.loaded = Math
																			.min(
																					u.size,
																					C
																							+ W.loaded
																							- T);
																	s
																			.trigger(
																					"UploadProgress",
																					u)
																}
															}
															q.onreadystatechange = function() {
																var W, Y;
																if (q.readyState == 4
																		&& s.state !== j.STOPPED) {
																	try {
																		W = q.status
																	} catch (X) {
																		W = 0
																	}
																	if (W >= 400) {
																		s
																				.trigger(
																						"Error",
																						{
																							code : j.HTTP_ERROR,
																							message : j
																									.translate("HTTP Error."),
																							file : u,
																							status : W
																						})
																	} else {
																		if (K) {
																			Y = {
																				chunk : D,
																				chunks : K,
																				response : q.responseText,
																				status : W
																			};
																			s
																					.trigger(
																							"ChunkUploaded",
																							u,
																							Y);
																			C += J;
																			if (Y.cancelled) {
																				u.status = j.FAILED;
																				return
																			}
																			u.loaded = Math
																					.min(
																							u.size,
																							(D + 1)
																									* H)
																		} else {
																			u.loaded = u.size
																		}
																		s
																				.trigger(
																						"UploadProgress",
																						u);
																		V = I = O = R = null;
																		if (!K
																				|| ++D >= K) {
																			u.status = j.DONE;
																			s
																					.trigger(
																							"FileUploaded",
																							u,
																							{
																								response : q.responseText,
																								status : W
																							})
																		} else {
																			B()
																		}
																	}
																}
															};
															if (s.settings.multipart
																	&& n.multipart) {
																L.name = u.target_name
																		|| u.name;
																q
																		.open(
																				"post",
																				E,
																				true);
																j
																		.each(
																				s.settings.headers,
																				function(
																						X,
																						W) {
																					q
																							.setRequestHeader(
																									W,
																									X)
																				});
																if (typeof (V) !== "string"
																		&& !!h.FormData) {
																	O = new FormData();
																	j
																			.each(
																					j
																							.extend(
																									L,
																									s.settings.multipart_params),
																					function(
																							X,
																							W) {
																						O
																								.append(
																										W,
																										X)
																					});
																	O
																			.append(
																					s.settings.file_data_name,
																					V);
																	q.send(O);
																	return
																}
																if (typeof (V) === "string") {
																	q
																			.setRequestHeader(
																					"Content-Type",
																					"multipart/form-data; boundary="
																							+ N);
																	j
																			.each(
																					j
																							.extend(
																									L,
																									s.settings.multipart_params),
																					function(
																							X,
																							W) {
																						R += P
																								+ N
																								+ U
																								+ 'Content-Disposition: form-data; name="'
																								+ W
																								+ '"'
																								+ U
																								+ U;
																						R += unescape(encodeURIComponent(X))
																								+ U
																					});
																	F = j.mimeTypes[u.name
																			.replace(
																					/^.+\.([^.]+)/,
																					"$1")
																			.toLowerCase()]
																			|| "application/octet-stream";
																	R += P
																			+ N
																			+ U
																			+ 'Content-Disposition: form-data; name="'
																			+ s.settings.file_data_name
																			+ '"; filename="'
																			+ unescape(encodeURIComponent(u.name))
																			+ '"'
																			+ U
																			+ "Content-Type: "
																			+ F
																			+ U
																			+ U
																			+ V
																			+ U
																			+ P
																			+ N
																			+ P
																			+ U;
																	T = R.length
																			- V.length;
																	V = R;
																	if (q.sendAsBinary) {
																		q
																				.sendAsBinary(V)
																	} else {
																		if (n.canSendBinary) {
																			var S = new Uint8Array(
																					V.length);
																			for ( var Q = 0; Q < V.length; Q++) {
																				S[Q] = (V
																						.charCodeAt(Q) & 255)
																			}
																			q
																					.send(S.buffer)
																		}
																	}
																	return
																}
															}
															E = j
																	.buildUrl(
																			s.settings.url,
																			j
																					.extend(
																							L,
																							s.settings.multipart_params));
															q.open("post", E,
																	true);
															q
																	.setRequestHeader(
																			"Content-Type",
																			"application/octet-stream");
															j
																	.each(
																			s.settings.headers,
																			function(
																					X,
																					W) {
																				q
																						.setRequestHeader(
																								W,
																								X)
																			});
															q.send(V)
														}
														if (u.status == j.DONE
																|| u.status == j.FAILED
																|| s.state == j.STOPPED) {
															return
														}
														L = {
															name : u.target_name
																	|| u.name
														};
														if (v.chunk_size
																&& u.size > v.chunk_size
																&& (n.chunks || typeof (A) == "string")) {
															H = v.chunk_size;
															K = Math
																	.ceil(u.size
																			/ H);
															J = Math
																	.min(
																			H,
																			u.size
																					- (D * H));
															if (typeof (A) == "string") {
																I = A
																		.substring(
																				D
																						* H,
																				D
																						* H
																						+ J)
															} else {
																I = x(
																		A,
																		D * H,
																		D
																				* H
																				+ J)
															}
															L.chunk = D;
															L.chunks = K
														} else {
															J = u.size;
															I = A
														}
														if (s.settings.multipart
																&& n.multipart
																&& typeof (I) !== "string"
																&& z
																&& n.cantSendBlobInFormData
																&& n.chunks
																&& s.settings.chunk_size) {
															z.onload = function() {
																G(z.result)
															};
															z
																	.readAsBinaryString(I)
														} else {
															G(I)
														}
													}
													B()
												}
												y = c[u.id];
												if (n.jpgresize
														&& s.settings.resize
														&& /\.(png|jpg|jpeg)$/i
																.test(u.name)) {
													d
															.call(
																	s,
																	u,
																	s.settings.resize,
																	/\.png$/i
																			.test(u.name) ? "image/png"
																			: "image/jpeg",
																	function(z) {
																		if (z.success) {
																			u.size = z.data.length;
																			w(z.data)
																		} else {
																			if (n.chunks) {
																				w(y)
																			} else {
																				l(
																						y,
																						w)
																			}
																		}
																	})
												} else {
													if (!n.chunks
															&& n.jpgresize) {
														l(y, w)
													} else {
														w(y)
													}
												}
											});
							p.bind("Destroy", function(s) {
								var u, v, t = k.body, w = {
									inputContainer : s.id + "_html5_container",
									inputFile : s.id + "_html5",
									browseButton : s.settings.browse_button,
									dropElm : s.settings.drop_element
								};
								for (u in w) {
									v = k.getElementById(w[u]);
									if (v) {
										j.removeAllEvents(v, s.id)
									}
								}
								j.removeAllEvents(k.body, s.id);
								if (s.settings.container) {
									t = k.getElementById(s.settings.container)
								}
								t.removeChild(k
										.getElementById(w.inputContainer))
							});
							r({
								success : true
							})
						}
					});
	function b() {
		var q = false, o;
		function r(t, v) {
			var s = q ? 0 : -8 * (v - 1), w = 0, u;
			for (u = 0; u < v; u++) {
				w |= (o.charCodeAt(t + u) << Math.abs(s + u * 8))
			}
			return w
		}
		function n(u, s, t) {
			var t = arguments.length === 3 ? t : o.length - s - 1;
			o = o.substr(0, s) + u + o.substr(t + s)
		}
		function p(t, u, w) {
			var x = "", s = q ? 0 : -8 * (w - 1), v;
			for (v = 0; v < w; v++) {
				x += String.fromCharCode((u >> Math.abs(s + v * 8)) & 255)
			}
			n(x, t, w)
		}
		return {
			II : function(s) {
				if (s === e) {
					return q
				} else {
					q = s
				}
			},
			init : function(s) {
				q = false;
				o = s
			},
			SEGMENT : function(s, u, t) {
				switch (arguments.length) {
				case 1:
					return o.substr(s, o.length - s - 1);
				case 2:
					return o.substr(s, u);
				case 3:
					n(t, s, u);
					break;
				default:
					return o
				}
			},
			BYTE : function(s) {
				return r(s, 1)
			},
			SHORT : function(s) {
				return r(s, 2)
			},
			LONG : function(s, t) {
				if (t === e) {
					return r(s, 4)
				} else {
					p(s, t, 4)
				}
			},
			SLONG : function(s) {
				var t = r(s, 4);
				return (t > 2147483647 ? t - 4294967296 : t)
			},
			STRING : function(s, t) {
				var u = "";
				for (t += s; s < t; s++) {
					u += String.fromCharCode(r(s, 1))
				}
				return u
			}
		}
	}
	function f(s) {
		var u = {
			65505 : {
				app : "EXIF",
				name : "APP1",
				signature : "Exif\0"
			},
			65506 : {
				app : "ICC",
				name : "APP2",
				signature : "ICC_PROFILE\0"
			},
			65517 : {
				app : "IPTC",
				name : "APP13",
				signature : "Photoshop 3.0\0"
			}
		}, t = [], r, n, p = e, q = 0, o;
		r = new b();
		r.init(s);
		if (r.SHORT(0) !== 65496) {
			return
		}
		n = 2;
		o = Math.min(1048576, s.length);
		while (n <= o) {
			p = r.SHORT(n);
			if (p >= 65488 && p <= 65495) {
				n += 2;
				continue
			}
			if (p === 65498 || p === 65497) {
				break
			}
			q = r.SHORT(n + 2) + 2;
			if (u[p]
					&& r.STRING(n + 4, u[p].signature.length) === u[p].signature) {
				t.push({
					hex : p,
					app : u[p].app.toUpperCase(),
					name : u[p].name.toUpperCase(),
					start : n,
					length : q,
					segment : r.SEGMENT(n, q)
				})
			}
			n += q
		}
		r.init(null);
		return {
			headers : t,
			restore : function(y) {
				r.init(y);
				var w = new f(y);
				if (!w.headers) {
					return false
				}
				for ( var x = w.headers.length; x > 0; x--) {
					var z = w.headers[x - 1];
					r.SEGMENT(z.start, z.length, "")
				}
				w.purge();
				n = r.SHORT(2) == 65504 ? 4 + r.SHORT(4) : 2;
				for ( var x = 0, v = t.length; x < v; x++) {
					r.SEGMENT(n, 0, t[x].segment);
					n += t[x].length
				}
				return r.SEGMENT()
			},
			get : function(x) {
				var y = [];
				for ( var w = 0, v = t.length; w < v; w++) {
					if (t[w].app === x.toUpperCase()) {
						y.push(t[w].segment)
					}
				}
				return y
			},
			set : function(y, x) {
				var z = [];
				if (typeof (x) === "string") {
					z.push(x)
				} else {
					z = x
				}
				for ( var w = ii = 0, v = t.length; w < v; w++) {
					if (t[w].app === y.toUpperCase()) {
						t[w].segment = z[ii];
						t[w].length = z[ii].length;
						ii++
					}
					if (ii >= z.length) {
						break
					}
				}
			},
			purge : function() {
				t = [];
				r.init(null)
			}
		}
	}
	function a() {
		var q, n, o = {}, t;
		q = new b();
		n = {
			tiff : {
				274 : "Orientation",
				34665 : "ExifIFDPointer",
				34853 : "GPSInfoIFDPointer"
			},
			exif : {
				36864 : "ExifVersion",
				40961 : "ColorSpace",
				40962 : "PixelXDimension",
				40963 : "PixelYDimension",
				36867 : "DateTimeOriginal",
				33434 : "ExposureTime",
				33437 : "FNumber",
				34855 : "ISOSpeedRatings",
				37377 : "ShutterSpeedValue",
				37378 : "ApertureValue",
				37383 : "MeteringMode",
				37384 : "LightSource",
				37385 : "Flash",
				41986 : "ExposureMode",
				41987 : "WhiteBalance",
				41990 : "SceneCaptureType",
				41988 : "DigitalZoomRatio",
				41992 : "Contrast",
				41993 : "Saturation",
				41994 : "Sharpness"
			},
			gps : {
				0 : "GPSVersionID",
				1 : "GPSLatitudeRef",
				2 : "GPSLatitude",
				3 : "GPSLongitudeRef",
				4 : "GPSLongitude"
			}
		};
		t = {
			ColorSpace : {
				1 : "sRGB",
				0 : "Uncalibrated"
			},
			MeteringMode : {
				0 : "Unknown",
				1 : "Average",
				2 : "CenterWeightedAverage",
				3 : "Spot",
				4 : "MultiSpot",
				5 : "Pattern",
				6 : "Partial",
				255 : "Other"
			},
			LightSource : {
				1 : "Daylight",
				2 : "Fliorescent",
				3 : "Tungsten",
				4 : "Flash",
				9 : "Fine weather",
				10 : "Cloudy weather",
				11 : "Shade",
				12 : "Daylight fluorescent (D 5700 - 7100K)",
				13 : "Day white fluorescent (N 4600 -5400K)",
				14 : "Cool white fluorescent (W 3900 - 4500K)",
				15 : "White fluorescent (WW 3200 - 3700K)",
				17 : "Standard light A",
				18 : "Standard light B",
				19 : "Standard light C",
				20 : "D55",
				21 : "D65",
				22 : "D75",
				23 : "D50",
				24 : "ISO studio tungsten",
				255 : "Other"
			},
			Flash : {
				0 : "Flash did not fire.",
				1 : "Flash fired.",
				5 : "Strobe return light not detected.",
				7 : "Strobe return light detected.",
				9 : "Flash fired, compulsory flash mode",
				13 : "Flash fired, compulsory flash mode, return light not detected",
				15 : "Flash fired, compulsory flash mode, return light detected",
				16 : "Flash did not fire, compulsory flash mode",
				24 : "Flash did not fire, auto mode",
				25 : "Flash fired, auto mode",
				29 : "Flash fired, auto mode, return light not detected",
				31 : "Flash fired, auto mode, return light detected",
				32 : "No flash function",
				65 : "Flash fired, red-eye reduction mode",
				69 : "Flash fired, red-eye reduction mode, return light not detected",
				71 : "Flash fired, red-eye reduction mode, return light detected",
				73 : "Flash fired, compulsory flash mode, red-eye reduction mode",
				77 : "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
				79 : "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
				89 : "Flash fired, auto mode, red-eye reduction mode",
				93 : "Flash fired, auto mode, return light not detected, red-eye reduction mode",
				95 : "Flash fired, auto mode, return light detected, red-eye reduction mode"
			},
			ExposureMode : {
				0 : "Auto exposure",
				1 : "Manual exposure",
				2 : "Auto bracket"
			},
			WhiteBalance : {
				0 : "Auto white balance",
				1 : "Manual white balance"
			},
			SceneCaptureType : {
				0 : "Standard",
				1 : "Landscape",
				2 : "Portrait",
				3 : "Night scene"
			},
			Contrast : {
				0 : "Normal",
				1 : "Soft",
				2 : "Hard"
			},
			Saturation : {
				0 : "Normal",
				1 : "Low saturation",
				2 : "High saturation"
			},
			Sharpness : {
				0 : "Normal",
				1 : "Soft",
				2 : "Hard"
			},
			GPSLatitudeRef : {
				N : "North latitude",
				S : "South latitude"
			},
			GPSLongitudeRef : {
				E : "East longitude",
				W : "West longitude"
			}
		};
		function p(u, C) {
			var w = q.SHORT(u), z, F, G, B, A, v, x, D, E = [], y = {};
			for (z = 0; z < w; z++) {
				x = v = u + 12 * z + 2;
				G = C[q.SHORT(x)];
				if (G === e) {
					continue
				}
				B = q.SHORT(x += 2);
				A = q.LONG(x += 2);
				x += 4;
				E = [];
				switch (B) {
				case 1:
				case 7:
					if (A > 4) {
						x = q.LONG(x) + o.tiffHeader
					}
					for (F = 0; F < A; F++) {
						E[F] = q.BYTE(x + F)
					}
					break;
				case 2:
					if (A > 4) {
						x = q.LONG(x) + o.tiffHeader
					}
					y[G] = q.STRING(x, A - 1);
					continue;
				case 3:
					if (A > 2) {
						x = q.LONG(x) + o.tiffHeader
					}
					for (F = 0; F < A; F++) {
						E[F] = q.SHORT(x + F * 2)
					}
					break;
				case 4:
					if (A > 1) {
						x = q.LONG(x) + o.tiffHeader
					}
					for (F = 0; F < A; F++) {
						E[F] = q.LONG(x + F * 4)
					}
					break;
				case 5:
					x = q.LONG(x) + o.tiffHeader;
					for (F = 0; F < A; F++) {
						E[F] = q.LONG(x + F * 4) / q.LONG(x + F * 4 + 4)
					}
					break;
				case 9:
					x = q.LONG(x) + o.tiffHeader;
					for (F = 0; F < A; F++) {
						E[F] = q.SLONG(x + F * 4)
					}
					break;
				case 10:
					x = q.LONG(x) + o.tiffHeader;
					for (F = 0; F < A; F++) {
						E[F] = q.SLONG(x + F * 4) / q.SLONG(x + F * 4 + 4)
					}
					break;
				default:
					continue
				}
				D = (A == 1 ? E[0] : E);
				if (t.hasOwnProperty(G) && typeof D != "object") {
					y[G] = t[G][D]
				} else {
					y[G] = D
				}
			}
			return y
		}
		function s() {
			var v = e, u = o.tiffHeader;
			q.II(q.SHORT(u) == 18761);
			if (q.SHORT(u += 2) !== 42) {
				return false
			}
			o.IFD0 = o.tiffHeader + q.LONG(u += 2);
			v = p(o.IFD0, n.tiff);
			o.exifIFD = ("ExifIFDPointer" in v ? o.tiffHeader
					+ v.ExifIFDPointer : e);
			o.gpsIFD = ("GPSInfoIFDPointer" in v ? o.tiffHeader
					+ v.GPSInfoIFDPointer : e);
			return true
		}
		function r(w, u, z) {
			var B, y, x, A = 0;
			if (typeof (u) === "string") {
				var v = n[w.toLowerCase()];
				for (hex in v) {
					if (v[hex] === u) {
						u = hex;
						break
					}
				}
			}
			B = o[w.toLowerCase() + "IFD"];
			y = q.SHORT(B);
			for (i = 0; i < y; i++) {
				x = B + 12 * i + 2;
				if (q.SHORT(x) == u) {
					A = x + 8;
					break
				}
			}
			if (!A) {
				return false
			}
			q.LONG(A, z);
			return true
		}
		return {
			init : function(u) {
				o = {
					tiffHeader : 10
				};
				if (u === e || !u.length) {
					return false
				}
				q.init(u);
				if (q.SHORT(0) === 65505
						&& q.STRING(4, 5).toUpperCase() === "EXIF\0") {
					return s()
				}
				return false
			},
			EXIF : function() {
				var v;
				v = p(o.exifIFD, n.exif);
				if (v.ExifVersion && j.typeOf(v.ExifVersion) === "array") {
					for ( var w = 0, u = ""; w < v.ExifVersion.length; w++) {
						u += String.fromCharCode(v.ExifVersion[w])
					}
					v.ExifVersion = u
				}
				return v
			},
			GPS : function() {
				var u;
				u = p(o.gpsIFD, n.gps);
				if (u.GPSVersionID) {
					u.GPSVersionID = u.GPSVersionID.join(".")
				}
				return u
			},
			setExif : function(u, v) {
				if (u !== "PixelXDimension" && u !== "PixelYDimension") {
					return false
				}
				return r("exif", u, v)
			},
			getBinary : function() {
				return q.SEGMENT()
			}
		}
	}
})(window, document, plupload);
(function(d, a, b, c) {
	function e(f) {
		return a.getElementById(f)
	}
	b.runtimes.Html4 = b
			.addRuntime(
					"html4",
					{
						getFeatures : function() {
							return {
								multipart : true,
								triggerDialog : (b.ua.gecko && d.FormData || b.ua.webkit)
							}
						},
						init : function(f, g) {
							f
									.bind(
											"Init",
											function(p) {
												var j = a.body, n, h = "javascript", k, x, q, z = [], r = /MSIE/
														.test(navigator.userAgent), t = [], m = p.settings.filters, o, l, s, w;
												no_type_restriction: for (o = 0; o < m.length; o++) {
													l = m[o].extensions
															.split(/,/);
													for (w = 0; w < l.length; w++) {
														if (l[w] === "*") {
															t = [];
															break no_type_restriction
														}
														s = b.mimeTypes[l[w]];
														if (s
																&& b.inArray(s,
																		t) === -1) {
															t.push(s)
														}
													}
												}
												t = t.join(",");
												function v() {
													var C, A, y, B;
													q = b.guid();
													z.push(q);
													C = a.createElement("form");
													C.setAttribute("id",
															"form_" + q);
													C.setAttribute("method",
															"post");
													C
															.setAttribute(
																	"enctype",
																	"multipart/form-data");
													C
															.setAttribute(
																	"encoding",
																	"multipart/form-data");
													C.setAttribute("target",
															p.id + "_iframe");
													C.style.position = "absolute";
													A = a
															.createElement("input");
													A.setAttribute("id",
															"input_" + q);
													A.setAttribute("type",
															"file");
													A.setAttribute("accept", t);
													A.setAttribute("size", 1);
													B = e(p.settings.browse_button);
													if (p.features.triggerDialog
															&& B) {
														b
																.addEvent(
																		e(p.settings.browse_button),
																		"click",
																		function(
																				D) {
																			if (!A.disabled) {
																				A
																						.click()
																			}
																			D
																					.preventDefault()
																		}, p.id)
													}
													b.extend(A.style, {
														width : "100%",
														height : "100%",
														opacity : 0,
														fontSize : "99px",
														cursor : "pointer"
													});
													b.extend(C.style, {
														overflow : "hidden"
													});
													y = p.settings.shim_bgcolor;
													if (y) {
														C.style.background = y
													}
													if (r) {
														b
																.extend(
																		A.style,
																		{
																			filter : "alpha(opacity=0)"
																		})
													}
													b
															.addEvent(
																	A,
																	"change",
																	function(G) {
																		var E = G.target, D, F = [], H;
																		if (E.value) {
																			e("form_"
																					+ q).style.top = -1048575
																					+ "px";
																			D = E.value
																					.replace(
																							/\\/g,
																							"/");
																			D = D
																					.substring(
																							D.length,
																							D
																									.lastIndexOf("/") + 1);
																			F
																					.push(new b.File(
																							q,
																							D));
																			if (!p.features.triggerDialog) {
																				b
																						.removeAllEvents(
																								C,
																								p.id)
																			} else {
																				b
																						.removeEvent(
																								B,
																								"click",
																								p.id)
																			}
																			b
																					.removeEvent(
																							A,
																							"change",
																							p.id);
																			v();
																			if (F.length) {
																				f
																						.trigger(
																								"FilesAdded",
																								F)
																			}
																		}
																	}, p.id);
													C.appendChild(A);
													j.appendChild(C);
													p.refresh()
												}
												function u() {
													var y = a
															.createElement("div");
													y.innerHTML = '<iframe id="'
															+ p.id
															+ '_iframe" name="'
															+ p.id
															+ '_iframe" src="'
															+ h
															+ ':&quot;&quot;" style="display:none"></iframe>';
													n = y.firstChild;
													j.appendChild(n);
													b
															.addEvent(
																	n,
																	"load",
																	function(D) {
																		var E = D.target, C, A;
																		if (!k) {
																			return
																		}
																		try {
																			C = E.contentWindow.document
																					|| E.contentDocument
																					|| d.frames[E.id].document
																		} catch (B) {
																			p
																					.trigger(
																							"Error",
																							{
																								code : b.SECURITY_ERROR,
																								message : b
																										.translate("Security error."),
																								file : k
																							});
																			return
																		}
																		A = C.body.innerHTML;
																		if (A) {
																			k.status = b.DONE;
																			k.loaded = 1025;
																			k.percent = 100;
																			p
																					.trigger(
																							"UploadProgress",
																							k);
																			p
																					.trigger(
																							"FileUploaded",
																							k,
																							{
																								response : A
																							})
																		}
																	}, p.id)
												}
												if (p.settings.container) {
													j = e(p.settings.container);
													if (b.getStyle(j,
															"position") === "static") {
														j.style.position = "relative"
													}
												}
												p
														.bind(
																"UploadFile",
																function(y, B) {
																	var C, A;
																	if (B.status == b.DONE
																			|| B.status == b.FAILED
																			|| y.state == b.STOPPED) {
																		return
																	}
																	C = e("form_"
																			+ B.id);
																	A = e("input_"
																			+ B.id);
																	A
																			.setAttribute(
																					"name",
																					y.settings.file_data_name);
																	C
																			.setAttribute(
																					"action",
																					y.settings.url);
																	b
																			.each(
																					b
																							.extend(
																									{
																										name : B.target_name
																												|| B.name
																									},
																									y.settings.multipart_params),
																					function(
																							F,
																							D) {
																						var E = a
																								.createElement("input");
																						b
																								.extend(
																										E,
																										{
																											type : "hidden",
																											name : D,
																											value : F
																										});
																						C
																								.insertBefore(
																										E,
																										C.firstChild)
																					});
																	k = B;
																	e("form_"
																			+ q).style.top = -1048575
																			+ "px";
																	C.submit()
																});
												p.bind("FileUploaded",
														function(y) {
															y.refresh()
														});
												p
														.bind(
																"StateChanged",
																function(y) {
																	if (y.state == b.STARTED) {
																		u()
																	} else {
																		if (y.state == b.STOPPED) {
																			d
																					.setTimeout(
																							function() {
																								b
																										.removeEvent(
																												n,
																												"load",
																												y.id);
																								if (n.parentNode) {
																									n.parentNode
																											.removeChild(n)
																								}
																							},
																							0)
																		}
																	}
																	b
																			.each(
																					y.files,
																					function(
																							B,
																							A) {
																						if (B.status === b.DONE
																								|| B.status === b.FAILED) {
																							var C = e("form_"
																									+ B.id);
																							if (C) {
																								C.parentNode
																										.removeChild(C)
																							}
																						}
																					})
																});
												p
														.bind(
																"Refresh",
																function(A) {
																	var G, B, C, D, y, H, I, F, E;
																	G = e(A.settings.browse_button);
																	if (G) {
																		y = b
																				.getPos(
																						G,
																						e(A.settings.container));
																		H = b
																				.getSize(G);
																		I = e("form_"
																				+ q);
																		F = e("input_"
																				+ q);
																		b
																				.extend(
																						I.style,
																						{
																							top : y.y
																									+ "px",
																							left : y.x
																									+ "px",
																							width : H.w
																									+ "px",
																							height : H.h
																									+ "px"
																						});
																		if (A.features.triggerDialog) {
																			if (b
																					.getStyle(
																							G,
																							"position") === "static") {
																				b
																						.extend(
																								G.style,
																								{
																									position : "relative"
																								})
																			}
																			E = parseInt(
																					G.style.zIndex,
																					10);
																			if (isNaN(E)) {
																				E = 0
																			}
																			b
																					.extend(
																							G.style,
																							{
																								zIndex : E
																							});
																			b
																					.extend(
																							I.style,
																							{
																								zIndex : E - 1
																							})
																		}
																		C = A.settings.browse_button_hover;
																		D = A.settings.browse_button_active;
																		B = A.features.triggerDialog ? G
																				: I;
																		if (C) {
																			b
																					.addEvent(
																							B,
																							"mouseover",
																							function() {
																								b
																										.addClass(
																												G,
																												C)
																							},
																							A.id);
																			b
																					.addEvent(
																							B,
																							"mouseout",
																							function() {
																								b
																										.removeClass(
																												G,
																												C)
																							},
																							A.id)
																		}
																		if (D) {
																			b
																					.addEvent(
																							B,
																							"mousedown",
																							function() {
																								b
																										.addClass(
																												G,
																												D)
																							},
																							A.id);
																			b
																					.addEvent(
																							a.body,
																							"mouseup",
																							function() {
																								b
																										.removeClass(
																												G,
																												D)
																							},
																							A.id)
																		}
																	}
																});
												f
														.bind(
																"FilesRemoved",
																function(y, B) {
																	var A, C;
																	for (A = 0; A < B.length; A++) {
																		C = e("form_"
																				+ B[A].id);
																		if (C) {
																			C.parentNode
																					.removeChild(C)
																		}
																	}
																});
												f
														.bind(
																"DisableBrowse",
																function(y, B) {
																	var A = a
																			.getElementById("input_"
																					+ q);
																	if (A) {
																		A.disabled = B
																	}
																});
												f
														.bind(
																"Destroy",
																function(y) {
																	var A, B, C, D = {
																		inputContainer : "form_"
																				+ q,
																		inputFile : "input_"
																				+ q,
																		browseButton : y.settings.browse_button
																	};
																	for (A in D) {
																		B = e(D[A]);
																		if (B) {
																			b
																					.removeAllEvents(
																							B,
																							y.id)
																		}
																	}
																	b
																			.removeAllEvents(
																					a.body,
																					y.id);
																	b
																			.each(
																					z,
																					function(
																							F,
																							E) {
																						C = e("form_"
																								+ F);
																						if (C) {
																							j
																									.removeChild(C)
																						}
																					})
																});
												v()
											});
							g({
								success : true
							})
						}
					})
})(window, document, plupload);